package sweezy.swf.tools.xml
{
	import flash.utils.ByteArray;
	import flash.utils.Dictionary;
	import flash.utils.getTimer;
	import sweezy.core.reflect.IProperty;
	import sweezy.core.reflect.IType;
	import sweezy.core.reflect.Reflection;
	import sweezy.swf.IElement;
	import sweezy.swf.ITag;
	import sweezy.swf.SWF;
	import sweezy.swf.abc.ABC;
	import sweezy.swf.abc.IOpcode;
	import sweezy.swf.abc.opcode.AbsJump;
	import sweezy.swf.abc.opcode.Add;
	import sweezy.swf.abc.opcode.AddD;
	import sweezy.swf.abc.opcode.AddI;
	import sweezy.swf.abc.opcode.AddP;
	import sweezy.swf.abc.opcode.Alloc;
	import sweezy.swf.abc.opcode.Applytype;
	import sweezy.swf.abc.opcode.Astype;
	import sweezy.swf.abc.opcode.Astypelate;
	import sweezy.swf.abc.opcode.Bitand;
	import sweezy.swf.abc.opcode.Bitnot;
	import sweezy.swf.abc.opcode.Bitor;
	import sweezy.swf.abc.opcode.Bitxor;
	import sweezy.swf.abc.opcode.Bkpt;
	import sweezy.swf.abc.opcode.Bkptline;
	import sweezy.swf.abc.opcode.Call;
	import sweezy.swf.abc.opcode.Callinterface;
	import sweezy.swf.abc.opcode.Callmethod;
	import sweezy.swf.abc.opcode.Callproperty;
	import sweezy.swf.abc.opcode.Callproplex;
	import sweezy.swf.abc.opcode.Callpropvoid;
	import sweezy.swf.abc.opcode.Callstatic;
	import sweezy.swf.abc.opcode.Callsuper;
	import sweezy.swf.abc.opcode.Callsuperid;
	import sweezy.swf.abc.opcode.Callsupervoid;
	import sweezy.swf.abc.opcode.Checkfilter;
	import sweezy.swf.abc.opcode.Codegenop;
	import sweezy.swf.abc.opcode.Coerce;
	import sweezy.swf.abc.opcode.CoerceA;
	import sweezy.swf.abc.opcode.CoerceB;
	import sweezy.swf.abc.opcode.CoerceD;
	import sweezy.swf.abc.opcode.CoerceI;
	import sweezy.swf.abc.opcode.CoerceO;
	import sweezy.swf.abc.opcode.CoerceS;
	import sweezy.swf.abc.opcode.CoerceU;
	import sweezy.swf.abc.opcode.Concat;
	import sweezy.swf.abc.opcode.Construct;
	import sweezy.swf.abc.opcode.Constructprop;
	import sweezy.swf.abc.opcode.Constructsuper;
	import sweezy.swf.abc.opcode.ConvertB;
	import sweezy.swf.abc.opcode.ConvertD;
	import sweezy.swf.abc.opcode.ConvertI;
	import sweezy.swf.abc.opcode.ConvertM;
	import sweezy.swf.abc.opcode.ConvertMP;
	import sweezy.swf.abc.opcode.ConvertO;
	import sweezy.swf.abc.opcode.ConvertS;
	import sweezy.swf.abc.opcode.ConvertU;
	import sweezy.swf.abc.opcode.Debug;
	import sweezy.swf.abc.opcode.Debugfile;
	import sweezy.swf.abc.opcode.Debugline;
	import sweezy.swf.abc.opcode.Declocal;
	import sweezy.swf.abc.opcode.DeclocalI;
	import sweezy.swf.abc.opcode.DeclocalP;
	import sweezy.swf.abc.opcode.Decode;
	import sweezy.swf.abc.opcode.Decrement;
	import sweezy.swf.abc.opcode.DecrementI;
	import sweezy.swf.abc.opcode.DecrementP;
	import sweezy.swf.abc.opcode.Deldescendants;
	import sweezy.swf.abc.opcode.Deleteproperty;
	import sweezy.swf.abc.opcode.Divide;
	import sweezy.swf.abc.opcode.DivideP;
	import sweezy.swf.abc.opcode.Doubletoatom;
	import sweezy.swf.abc.opcode.Dup;
	import sweezy.swf.abc.opcode.Dxns;
	import sweezy.swf.abc.opcode.Dxnslate;
	import sweezy.swf.abc.opcode.Equals;
	import sweezy.swf.abc.opcode.EscXattr;
	import sweezy.swf.abc.opcode.EscXelem;
	import sweezy.swf.abc.opcode.Finddef;
	import sweezy.swf.abc.opcode.Findproperty;
	import sweezy.swf.abc.opcode.Findpropstrict;
	import sweezy.swf.abc.opcode.Getdescendants;
	import sweezy.swf.abc.opcode.Getglobalscope;
	import sweezy.swf.abc.opcode.Getglobalslot;
	import sweezy.swf.abc.opcode.Getlex;
	import sweezy.swf.abc.opcode.Getlocal;
	import sweezy.swf.abc.opcode.Getlocal0;
	import sweezy.swf.abc.opcode.Getlocal1;
	import sweezy.swf.abc.opcode.Getlocal2;
	import sweezy.swf.abc.opcode.Getlocal3;
	import sweezy.swf.abc.opcode.Getproperty;
	import sweezy.swf.abc.opcode.Getscopeobject;
	import sweezy.swf.abc.opcode.Getslot;
	import sweezy.swf.abc.opcode.Getsuper;
	import sweezy.swf.abc.opcode.Greaterequals;
	import sweezy.swf.abc.opcode.Greaterthan;
	import sweezy.swf.abc.opcode.Hasnext;
	import sweezy.swf.abc.opcode.Hasnext2;
	import sweezy.swf.abc.opcode.Ifeq;
	import sweezy.swf.abc.opcode.Iffalse;
	import sweezy.swf.abc.opcode.Ifge;
	import sweezy.swf.abc.opcode.Ifgt;
	import sweezy.swf.abc.opcode.Ifle;
	import sweezy.swf.abc.opcode.Iflt;
	import sweezy.swf.abc.opcode.Ifne;
	import sweezy.swf.abc.opcode.Ifnge;
	import sweezy.swf.abc.opcode.Ifngt;
	import sweezy.swf.abc.opcode.Ifnle;
	import sweezy.swf.abc.opcode.Ifnlt;
	import sweezy.swf.abc.opcode.Ifstricteq;
	import sweezy.swf.abc.opcode.Ifstrictne;
	import sweezy.swf.abc.opcode.Iftrue;
	import sweezy.swf.abc.opcode.In;
	import sweezy.swf.abc.opcode.Inclocal;
	import sweezy.swf.abc.opcode.InclocalI;
	import sweezy.swf.abc.opcode.InclocalP;
	import sweezy.swf.abc.opcode.Increment;
	import sweezy.swf.abc.opcode.IncrementI;
	import sweezy.swf.abc.opcode.IncrementP;
	import sweezy.swf.abc.opcode.Initproperty;
	import sweezy.swf.abc.opcode.Instanceof;
	import sweezy.swf.abc.opcode.Istype;
	import sweezy.swf.abc.opcode.Istypelate;
	import sweezy.swf.abc.opcode.Jump;
	import sweezy.swf.abc.opcode.Kill;
	import sweezy.swf.abc.opcode.Label;
	import sweezy.swf.abc.opcode.Lessequals;
	import sweezy.swf.abc.opcode.Lessthan;
	import sweezy.swf.abc.opcode.Lf32;
	import sweezy.swf.abc.opcode.Lf64;
	import sweezy.swf.abc.opcode.Li16;
	import sweezy.swf.abc.opcode.Li32;
	import sweezy.swf.abc.opcode.Li8;
	import sweezy.swf.abc.opcode.Lookupswitch;
	import sweezy.swf.abc.opcode.Lshift;
	import sweezy.swf.abc.opcode.Mark;
	import sweezy.swf.abc.opcode.Modulo;
	import sweezy.swf.abc.opcode.ModuloP;
	import sweezy.swf.abc.opcode.Multiply;
	import sweezy.swf.abc.opcode.MultiplyI;
	import sweezy.swf.abc.opcode.MultiplyP;
	import sweezy.swf.abc.opcode.Negate;
	import sweezy.swf.abc.opcode.NegateI;
	import sweezy.swf.abc.opcode.NegateP;
	import sweezy.swf.abc.opcode.Newactivation;
	import sweezy.swf.abc.opcode.Newarray;
	import sweezy.swf.abc.opcode.Newcatch;
	import sweezy.swf.abc.opcode.Newclass;
	import sweezy.swf.abc.opcode.Newfunction;
	import sweezy.swf.abc.opcode.Newobject;
	import sweezy.swf.abc.opcode.Nextname;
	import sweezy.swf.abc.opcode.Nextvalue;
	import sweezy.swf.abc.opcode.Nop;
	import sweezy.swf.abc.opcode.Not;
	import sweezy.swf.abc.opcode.Pop;
	import sweezy.swf.abc.opcode.Popscope;
	import sweezy.swf.abc.opcode.Prologue;
	import sweezy.swf.abc.opcode.Pushbyte;
	import sweezy.swf.abc.opcode.Pushdecimal;
	import sweezy.swf.abc.opcode.Pushdnan;
	import sweezy.swf.abc.opcode.Pushdouble;
	import sweezy.swf.abc.opcode.Pushfalse;
	import sweezy.swf.abc.opcode.Pushint;
	import sweezy.swf.abc.opcode.Pushnamespace;
	import sweezy.swf.abc.opcode.Pushnan;
	import sweezy.swf.abc.opcode.Pushnull;
	import sweezy.swf.abc.opcode.Pushscope;
	import sweezy.swf.abc.opcode.Pushshort;
	import sweezy.swf.abc.opcode.Pushstring;
	import sweezy.swf.abc.opcode.Pushtrue;
	import sweezy.swf.abc.opcode.Pushuint;
	import sweezy.swf.abc.opcode.Pushundefined;
	import sweezy.swf.abc.opcode.Pushuninitialized;
	import sweezy.swf.abc.opcode.Pushwith;
	import sweezy.swf.abc.opcode.Returnvalue;
	import sweezy.swf.abc.opcode.Returnvoid;
	import sweezy.swf.abc.opcode.Rshift;
	import sweezy.swf.abc.opcode.Sendenter;
	import sweezy.swf.abc.opcode.Setglobalslot;
	import sweezy.swf.abc.opcode.Setlocal;
	import sweezy.swf.abc.opcode.Setlocal0;
	import sweezy.swf.abc.opcode.Setlocal1;
	import sweezy.swf.abc.opcode.Setlocal2;
	import sweezy.swf.abc.opcode.Setlocal3;
	import sweezy.swf.abc.opcode.Setproperty;
	import sweezy.swf.abc.opcode.Setslot;
	import sweezy.swf.abc.opcode.Setsuper;
	import sweezy.swf.abc.opcode.Sf32;
	import sweezy.swf.abc.opcode.Sf64;
	import sweezy.swf.abc.opcode.Si16;
	import sweezy.swf.abc.opcode.Si32;
	import sweezy.swf.abc.opcode.Si8;
	import sweezy.swf.abc.opcode.Strictequals;
	import sweezy.swf.abc.opcode.Subtract;
	import sweezy.swf.abc.opcode.SubtractI;
	import sweezy.swf.abc.opcode.SubtractP;
	import sweezy.swf.abc.opcode.Swap;
	import sweezy.swf.abc.opcode.Sweep;
	import sweezy.swf.abc.opcode.Sxi1;
	import sweezy.swf.abc.opcode.Sxi16;
	import sweezy.swf.abc.opcode.Sxi8;
	import sweezy.swf.abc.opcode.Throw;
	import sweezy.swf.abc.opcode.Timestamp;
	import sweezy.swf.abc.opcode.Typeof;
	import sweezy.swf.abc.opcode.UnknownOpecode;
	import sweezy.swf.abc.opcode.Urshift;
	import sweezy.swf.abc.opcode.Verifyop;
	import sweezy.swf.abc.opcode.Verifypass;
	import sweezy.swf.abc.opcode.Wb;
	import sweezy.swf.abc.structure.ClassInfo;
	import sweezy.swf.abc.structure.ClassTrait;
	import sweezy.swf.abc.structure.ConstTrait;
	import sweezy.swf.abc.structure.ConstantPoolInfo;
	import sweezy.swf.abc.structure.ExceptionInfo;
	import sweezy.swf.abc.structure.FunctionTrait;
	import sweezy.swf.abc.structure.GetterTrait;
	import sweezy.swf.abc.structure.InstanceInfo;
	import sweezy.swf.abc.structure.MetadataInfo;
	import sweezy.swf.abc.structure.MetadataItemInfo;
	import sweezy.swf.abc.structure.MethodBodyInfo;
	import sweezy.swf.abc.structure.MethodInfo;
	import sweezy.swf.abc.structure.MethodTrait;
	import sweezy.swf.abc.structure.Multiname;
	import sweezy.swf.abc.structure.MultinameA;
	import sweezy.swf.abc.structure.MultinameL;
	import sweezy.swf.abc.structure.MultinameLA;
	import sweezy.swf.abc.structure.NameL;
	import sweezy.swf.abc.structure.NameLA;
	import sweezy.swf.abc.structure.NamespaceInfo;
	import sweezy.swf.abc.structure.NamespaceSetInfo;
	import sweezy.swf.abc.structure.OptionDetail;
	import sweezy.swf.abc.structure.QNameA;
	import sweezy.swf.abc.structure.QNameInfo;
	import sweezy.swf.abc.structure.RTQName;
	import sweezy.swf.abc.structure.RTQNameA;
	import sweezy.swf.abc.structure.RTQNameL;
	import sweezy.swf.abc.structure.RTQNameLA;
	import sweezy.swf.abc.structure.ScriptInfo;
	import sweezy.swf.abc.structure.SetterTrait;
	import sweezy.swf.abc.structure.SlotTrait;
	import sweezy.swf.abc.structure.TypeName;
	import sweezy.swf.action.Action;
	import sweezy.swf.action.code.ActionAdd;
	import sweezy.swf.action.code.ActionAdd2;
	import sweezy.swf.action.code.ActionAnd;
	import sweezy.swf.action.code.ActionAsciiToChar;
	import sweezy.swf.action.code.ActionBitAnd;
	import sweezy.swf.action.code.ActionBitLShift;
	import sweezy.swf.action.code.ActionBitOr;
	import sweezy.swf.action.code.ActionBitRShift;
	import sweezy.swf.action.code.ActionBitURShift;
	import sweezy.swf.action.code.ActionBitXor;
	import sweezy.swf.action.code.ActionCall;
	import sweezy.swf.action.code.ActionCallFunction;
	import sweezy.swf.action.code.ActionCallMethod;
	import sweezy.swf.action.code.ActionCastOp;
	import sweezy.swf.action.code.ActionCharToAscii;
	import sweezy.swf.action.code.ActionCloneSprite;
	import sweezy.swf.action.code.ActionConstantPool;
	import sweezy.swf.action.code.ActionDecrement;
	import sweezy.swf.action.code.ActionDefineFunction;
	import sweezy.swf.action.code.ActionDefineFunction2;
	import sweezy.swf.action.code.ActionDefineLocal;
	import sweezy.swf.action.code.ActionDefineLocal2;
	import sweezy.swf.action.code.ActionDelete;
	import sweezy.swf.action.code.ActionDelete2;
	import sweezy.swf.action.code.ActionDivide;
	import sweezy.swf.action.code.ActionEndDrag;
	import sweezy.swf.action.code.ActionEnumerate;
	import sweezy.swf.action.code.ActionEnumerate2;
	import sweezy.swf.action.code.ActionEquals;
	import sweezy.swf.action.code.ActionEquals2;
	import sweezy.swf.action.code.ActionExtends;
	import sweezy.swf.action.code.ActionGetMember;
	import sweezy.swf.action.code.ActionGetProperty;
	import sweezy.swf.action.code.ActionGetTime;
	import sweezy.swf.action.code.ActionGetURL;
	import sweezy.swf.action.code.ActionGetURL2;
	import sweezy.swf.action.code.ActionGetVariable;
	import sweezy.swf.action.code.ActionGoToLabel;
	import sweezy.swf.action.code.ActionGotoFrame;
	import sweezy.swf.action.code.ActionGotoFrame2;
	import sweezy.swf.action.code.ActionGreater;
	import sweezy.swf.action.code.ActionIf;
	import sweezy.swf.action.code.ActionImplementsOp;
	import sweezy.swf.action.code.ActionIncrement;
	import sweezy.swf.action.code.ActionInitArray;
	import sweezy.swf.action.code.ActionInitObject;
	import sweezy.swf.action.code.ActionJump;
	import sweezy.swf.action.code.ActionLess;
	import sweezy.swf.action.code.ActionLess2;
	import sweezy.swf.action.code.ActionMBAsciiToChar;
	import sweezy.swf.action.code.ActionMBCharToAscii;
	import sweezy.swf.action.code.ActionMBStringExtract;
	import sweezy.swf.action.code.ActionMBStringLength;
	import sweezy.swf.action.code.ActionModulo;
	import sweezy.swf.action.code.ActionMultiply;
	import sweezy.swf.action.code.ActionNewMethod;
	import sweezy.swf.action.code.ActionNewObject;
	import sweezy.swf.action.code.ActionNextFrame;
	import sweezy.swf.action.code.ActionNot;
	import sweezy.swf.action.code.ActionOr;
	import sweezy.swf.action.code.ActionPlay;
	import sweezy.swf.action.code.ActionPop;
	import sweezy.swf.action.code.ActionPreviousFrame;
	import sweezy.swf.action.code.ActionPush;
	import sweezy.swf.action.code.ActionPushDuplicate;
	import sweezy.swf.action.code.ActionPushValue;
	import sweezy.swf.action.code.ActionRandomNumber;
	import sweezy.swf.action.code.ActionRemoveSprite;
	import sweezy.swf.action.code.ActionReturn;
	import sweezy.swf.action.code.ActionSetMember;
	import sweezy.swf.action.code.ActionSetProperty;
	import sweezy.swf.action.code.ActionSetTarget;
	import sweezy.swf.action.code.ActionSetTarget2;
	import sweezy.swf.action.code.ActionSetVariable;
	import sweezy.swf.action.code.ActionStackSwap;
	import sweezy.swf.action.code.ActionStartDrag;
	import sweezy.swf.action.code.ActionStop;
	import sweezy.swf.action.code.ActionStopSounds;
	import sweezy.swf.action.code.ActionStoreRegister;
	import sweezy.swf.action.code.ActionStrictEquals;
	import sweezy.swf.action.code.ActionStringAdd;
	import sweezy.swf.action.code.ActionStringEquals;
	import sweezy.swf.action.code.ActionStringExtract;
	import sweezy.swf.action.code.ActionStringGreater;
	import sweezy.swf.action.code.ActionStringLength;
	import sweezy.swf.action.code.ActionStringLess;
	import sweezy.swf.action.code.ActionSubtract;
	import sweezy.swf.action.code.ActionTargetPath;
	import sweezy.swf.action.code.ActionThrow;
	import sweezy.swf.action.code.ActionToInteger;
	import sweezy.swf.action.code.ActionToNumber;
	import sweezy.swf.action.code.ActionToString;
	import sweezy.swf.action.code.ActionToggleQuality;
	import sweezy.swf.action.code.ActionTrace;
	import sweezy.swf.action.code.ActionTry;
	import sweezy.swf.action.code.ActionTypeOf;
	import sweezy.swf.action.code.ActionUnknown;
	import sweezy.swf.action.code.ActionWaitForFrame;
	import sweezy.swf.action.code.ActionWaitForFrame2;
	import sweezy.swf.action.code.ActionWith;
	import sweezy.swf.structure.ABCData;
	import sweezy.swf.structure.ActionRecords;
	import sweezy.swf.structure.AlphaBitmapData;
	import sweezy.swf.structure.AlphaColorMapData;
	import sweezy.swf.structure.Asset;
	import sweezy.swf.structure.BevelFilter;
	import sweezy.swf.structure.BitmapData15;
	import sweezy.swf.structure.BitmapData24;
	import sweezy.swf.structure.BlurFilter;
	import sweezy.swf.structure.ButtonCondAction;
	import sweezy.swf.structure.ButtonRecord;
	import sweezy.swf.structure.CXForm;
	import sweezy.swf.structure.CXFormWithAlpha;
	import sweezy.swf.structure.ClipActionRecord;
	import sweezy.swf.structure.ClipActions;
	import sweezy.swf.structure.ClipEventFlags;
	import sweezy.swf.structure.ColorMapData;
	import sweezy.swf.structure.ColorMatrixFilter;
	import sweezy.swf.structure.ConvolutionFilter;
	import sweezy.swf.structure.CurvedEdgeRecord;
	import sweezy.swf.structure.DropShadowFilter;
	import sweezy.swf.structure.EndShapeRecord;
	import sweezy.swf.structure.FillStyle;
	import sweezy.swf.structure.FocalGradient;
	import sweezy.swf.structure.FrameLabelData;
	import sweezy.swf.structure.GlowFilter;
	import sweezy.swf.structure.GlyphEntry;
	import sweezy.swf.structure.Gradient;
	import sweezy.swf.structure.GradientBevelFilter;
	import sweezy.swf.structure.GradientGlowFilter;
	import sweezy.swf.structure.GradientRecord;
	import sweezy.swf.structure.Header;
	import sweezy.swf.structure.KerningRecord;
	import sweezy.swf.structure.LanguageCode;
	import sweezy.swf.structure.LineStyle;
	import sweezy.swf.structure.LineStyle2;
	import sweezy.swf.structure.Matrix;
	import sweezy.swf.structure.MorphFillStyle;
	import sweezy.swf.structure.MorphGradientRecord;
	import sweezy.swf.structure.MorphLineStyle;
	import sweezy.swf.structure.MorphLineStyle2;
	import sweezy.swf.structure.RGB;
	import sweezy.swf.structure.RGBA;
	import sweezy.swf.structure.Rect;
	import sweezy.swf.structure.RegisterParam;
	import sweezy.swf.structure.SceneData;
	import sweezy.swf.structure.Shape;
	import sweezy.swf.structure.ShapeRecordBase;
	import sweezy.swf.structure.ShapeWithStyle;
	import sweezy.swf.structure.SoundEnvelope;
	import sweezy.swf.structure.SoundInfo;
	import sweezy.swf.structure.StraightEdgeRecord;
	import sweezy.swf.structure.StyleChangeRecord;
	import sweezy.swf.structure.Symbol;
	import sweezy.swf.structure.TextRecord;
	import sweezy.swf.structure.ZoneData;
	import sweezy.swf.structure.ZoneRecord;
	import sweezy.swf.tag.CSMTextSettings;
	import sweezy.swf.tag.DebugID;
	import sweezy.swf.tag.DefineBinaryData;
	import sweezy.swf.tag.DefineBits;
	import sweezy.swf.tag.DefineBitsJPEG2;
	import sweezy.swf.tag.DefineBitsJPEG3;
	import sweezy.swf.tag.DefineBitsJPEG4;
	import sweezy.swf.tag.DefineBitsLossless;
	import sweezy.swf.tag.DefineBitsLossless2;
	import sweezy.swf.tag.DefineButton;
	import sweezy.swf.tag.DefineButton2;
	import sweezy.swf.tag.DefineButtonCxform;
	import sweezy.swf.tag.DefineButtonSound;
	import sweezy.swf.tag.DefineEditText;
	import sweezy.swf.tag.DefineFont;
	import sweezy.swf.tag.DefineFont2;
	import sweezy.swf.tag.DefineFont3;
	import sweezy.swf.tag.DefineFont4;
	import sweezy.swf.tag.DefineFontAlignZones;
	import sweezy.swf.tag.DefineFontInfo;
	import sweezy.swf.tag.DefineFontInfo2;
	import sweezy.swf.tag.DefineFontName;
	import sweezy.swf.tag.DefineMorphShape;
	import sweezy.swf.tag.DefineMorphShape2;
	import sweezy.swf.tag.DefineScalingGrid;
	import sweezy.swf.tag.DefineSceneAndFrameLabelData;
	import sweezy.swf.tag.DefineShape;
	import sweezy.swf.tag.DefineShape2;
	import sweezy.swf.tag.DefineShape3;
	import sweezy.swf.tag.DefineShape4;
	import sweezy.swf.tag.DefineSound;
	import sweezy.swf.tag.DefineSprite;
	import sweezy.swf.tag.DefineText;
	import sweezy.swf.tag.DefineText2;
	import sweezy.swf.tag.DefineVideoStream;
	import sweezy.swf.tag.DoABC;
	import sweezy.swf.tag.DoABC2;
	import sweezy.swf.tag.DoAction;
	import sweezy.swf.tag.DoInitAction;
	import sweezy.swf.tag.EnableDebugger;
	import sweezy.swf.tag.EnableDebugger2;
	import sweezy.swf.tag.End;
	import sweezy.swf.tag.ExportAssets;
	import sweezy.swf.tag.FileAttributes;
	import sweezy.swf.tag.FrameLabel;
	import sweezy.swf.tag.ImportAssets;
	import sweezy.swf.tag.ImportAssets2;
	import sweezy.swf.tag.JPEGTables;
	import sweezy.swf.tag.Metadata;
	import sweezy.swf.tag.PlaceObject;
	import sweezy.swf.tag.PlaceObject2;
	import sweezy.swf.tag.PlaceObject3;
	import sweezy.swf.tag.ProductInfo;
	import sweezy.swf.tag.Protect;
	import sweezy.swf.tag.RemoveObject;
	import sweezy.swf.tag.RemoveObject2;
	import sweezy.swf.tag.ScriptLimits;
	import sweezy.swf.tag.SetBackgroundColor;
	import sweezy.swf.tag.SetTabIndex;
	import sweezy.swf.tag.ShowFrame;
	import sweezy.swf.tag.SoundStreamBlock;
	import sweezy.swf.tag.SoundStreamHead;
	import sweezy.swf.tag.SoundStreamHead2;
	import sweezy.swf.tag.StartSound;
	import sweezy.swf.tag.StartSound2;
	import sweezy.swf.tag.SymbolClass;
	import sweezy.swf.tag.UnknownTag;
	import sweezy.swf.tag.VideoFrame;

	internal class TypeMappings
	{

		public static var mappings:Object;

		public static var propertiesLists:Dictionary;

		public static var propertiesMaps:Dictionary;

		public static var scalarTypes:Dictionary;

		public static var unknownTypes:Dictionary;

		public static function createInstance(name:String, parameter:String = null):*
		{
			var type:Class = mappings[name];
			if (type === null)
			{
				return null;
			}

			if (type === String)
			{
				return parameter;
			}

			if (type === int)
			{
				return int(parameter);
			}

			if (type === uint)
			{
				return uint(parameter);
			}

			if (type === Number)
			{
				return parseFloat(parameter);
			}

			if (type === Boolean)
			{
				return parameter === "true";
			}

			if (type in unknownTypes)
			{
				return new type(uint(parameter));
			}

			return new type();
		}

		private static function initpropertiesMappings():void
		{
			propertiesLists = new Dictionary();
			propertiesMaps = new Dictionary();

			var elementType:IType = Reflection.forClass(IElement);
			var tagType:IType = Reflection.forClass(ITag);
			var opType:IType = Reflection.forClass(IOpcode);

			var ignore:Object = {};
			var tagIgnore:Object = {};
			var opIgnore:Object = {};

			ignore["elementType"] = null;
			ignore["elementName"] = null;

			tagIgnore["tagVersion"] = null;
			tagIgnore["position"] = null;
			tagIgnore["length"] = null;
			tagIgnore["unknown"] = null;
			tagIgnore["longHeader"] = null;
			tagIgnore["code"] = null;

			opIgnore["size"] = null;
			opIgnore["index"] = null;
			opIgnore["position"] = null;
			opIgnore["code"] = null;

			for each (var cls:Class in mappings)
			{
				if (cls === null)
				{
					continue;
				}

				var type:IType = Reflection.forClass(cls);
				if (!elementType.isAssignableFrom(type))
				{
					continue;
				}

				var list:Array = propertiesLists[type] = [];
				var map:Object = propertiesMaps[type] = {};

				for each (var property:IProperty in type.properties)
				{
					if (!property.isVariable || property.isStatic || property.isConst)
					{
						continue;
					}

					var name:String = property.name;
					if (name in ignore)
					{
						continue;
					}
					if (tagType.isAssignableFrom(type) && (name in tagIgnore))
					{
						continue;
					}
					if (opType.isAssignableFrom(type) && (name in opIgnore))
					{
						continue;
					}

					var propertyClass:Class = property.type.rawClass;
					var p:Property = new Property(name, propertyClass, propertyClass in scalarTypes);
					list[list.length] = p;
					map[name] = p;
				}
			}
		}

		{
			scalarTypes = new Dictionary();
			scalarTypes[String] = null;
			scalarTypes[uint] = null;
			scalarTypes[int] = null;
			scalarTypes[Boolean] = null;
			scalarTypes[Number] = null;

			unknownTypes = new Dictionary();
			unknownTypes[ActionUnknown] = null;
			unknownTypes[UnknownOpecode] = null;
			unknownTypes[UnknownTag] = null;

			mappings = {};
			mappings["Null"] = null;
			mappings["String"] = String;
			mappings["int"] = int;
			mappings["uint"] = uint;
			mappings["Number"] = Number;
			mappings["Boolean"] = Boolean;
			mappings["Array"] = Array;
			mappings["ByteArray"] = ByteArray;
			mappings["SWF"] = SWF;
			mappings["ABC"] = ABC;

			mappings["ClassInfo"] = ClassInfo;
			mappings["ClassTrait"] = ClassTrait;
			mappings["ConstantPoolInfo"] = ConstantPoolInfo;
			mappings["ConstTrait"] = ConstTrait;
			mappings["ExceptionInfo"] = ExceptionInfo;
			mappings["FunctionTrait"] = FunctionTrait;
			mappings["GetterTrait"] = GetterTrait;
			mappings["InstanceInfo"] = InstanceInfo;
			mappings["MetadataInfo"] = MetadataInfo;
			mappings["MetadataItemInfo"] = MetadataItemInfo;
			mappings["MethodBodyInfo"] = MethodBodyInfo;
			mappings["MethodInfo"] = MethodInfo;
			mappings["MethodTrait"] = MethodTrait;
			mappings["Multiname"] = Multiname;
			mappings["MultinameA"] = MultinameA;
			mappings["MultinameL"] = MultinameL;
			mappings["MultinameLA"] = MultinameLA;
			mappings["NameL"] = NameL;
			mappings["NameLA"] = NameLA;
			mappings["NamespaceInfo"] = NamespaceInfo;
			mappings["NamespaceSetInfo"] = NamespaceSetInfo;
			mappings["OptionDetail"] = OptionDetail;
			mappings["QNameA"] = QNameA;
			mappings["QNameInfo"] = QNameInfo;
			mappings["RTQName"] = RTQName;
			mappings["RTQNameA"] = RTQNameA;
			mappings["RTQNameL"] = RTQNameL;
			mappings["RTQNameLA"] = RTQNameLA;
			mappings["ScriptInfo"] = ScriptInfo;
			mappings["SetterTrait"] = SetterTrait;
			mappings["SlotTrait"] = SlotTrait;
			mappings["TypeName"] = TypeName;
			mappings["AbsJump"] = AbsJump;
			mappings["Add"] = Add;
			mappings["AddD"] = AddD;
			mappings["AddI"] = AddI;
			mappings["AddP"] = AddP;
			mappings["Alloc"] = Alloc;
			mappings["Applytype"] = Applytype;
			mappings["Astype"] = Astype;
			mappings["Astypelate"] = Astypelate;
			mappings["Bitand"] = Bitand;
			mappings["Bitnot"] = Bitnot;
			mappings["Bitor"] = Bitor;
			mappings["Bitxor"] = Bitxor;
			mappings["Bkpt"] = Bkpt;
			mappings["Bkptline"] = Bkptline;
			mappings["Call"] = Call;
			mappings["Callinterface"] = Callinterface;
			mappings["Callmethod"] = Callmethod;
			mappings["Callproperty"] = Callproperty;
			mappings["Callproplex"] = Callproplex;
			mappings["Callpropvoid"] = Callpropvoid;
			mappings["Callstatic"] = Callstatic;
			mappings["Callsuper"] = Callsuper;
			mappings["Callsuperid"] = Callsuperid;
			mappings["Callsupervoid"] = Callsupervoid;
			mappings["Checkfilter"] = Checkfilter;
			mappings["Codegenop"] = Codegenop;
			mappings["Coerce"] = Coerce;
			mappings["CoerceA"] = CoerceA;
			mappings["CoerceB"] = CoerceB;
			mappings["CoerceD"] = CoerceD;
			mappings["CoerceI"] = CoerceI;
			mappings["CoerceO"] = CoerceO;
			mappings["CoerceS"] = CoerceS;
			mappings["CoerceU"] = CoerceU;
			mappings["Concat"] = Concat;
			mappings["Construct"] = Construct;
			mappings["Constructprop"] = Constructprop;
			mappings["Constructsuper"] = Constructsuper;
			mappings["ConvertB"] = ConvertB;
			mappings["ConvertD"] = ConvertD;
			mappings["ConvertI"] = ConvertI;
			mappings["ConvertM"] = ConvertM;
			mappings["ConvertMP"] = ConvertMP;
			mappings["ConvertO"] = ConvertO;
			mappings["ConvertS"] = ConvertS;
			mappings["ConvertU"] = ConvertU;
			mappings["Debug"] = Debug;
			mappings["Debugfile"] = Debugfile;
			mappings["Debugline"] = Debugline;
			mappings["Declocal"] = Declocal;
			mappings["DeclocalI"] = DeclocalI;
			mappings["DeclocalP"] = DeclocalP;
			mappings["Decode"] = Decode;
			mappings["Decrement"] = Decrement;
			mappings["DecrementI"] = DecrementI;
			mappings["DecrementP"] = DecrementP;
			mappings["Deldescendants"] = Deldescendants;
			mappings["Deleteproperty"] = Deleteproperty;
			mappings["Divide"] = Divide;
			mappings["DivideP"] = DivideP;
			mappings["Doubletoatom"] = Doubletoatom;
			mappings["Dup"] = Dup;
			mappings["Dxns"] = Dxns;
			mappings["Dxnslate"] = Dxnslate;
			mappings["Equals"] = Equals;
			mappings["EscXattr"] = EscXattr;
			mappings["EscXelem"] = EscXelem;
			mappings["Finddef"] = Finddef;
			mappings["Findproperty"] = Findproperty;
			mappings["Findpropstrict"] = Findpropstrict;
			mappings["Getdescendants"] = Getdescendants;
			mappings["Getglobalscope"] = Getglobalscope;
			mappings["Getglobalslot"] = Getglobalslot;
			mappings["Getlex"] = Getlex;
			mappings["Getlocal"] = Getlocal;
			mappings["Getlocal0"] = Getlocal0;
			mappings["Getlocal1"] = Getlocal1;
			mappings["Getlocal2"] = Getlocal2;
			mappings["Getlocal3"] = Getlocal3;
			mappings["Getproperty"] = Getproperty;
			mappings["Getscopeobject"] = Getscopeobject;
			mappings["Getslot"] = Getslot;
			mappings["Getsuper"] = Getsuper;
			mappings["Greaterequals"] = Greaterequals;
			mappings["Greaterthan"] = Greaterthan;
			mappings["Hasnext"] = Hasnext;
			mappings["Hasnext2"] = Hasnext2;
			mappings["Ifeq"] = Ifeq;
			mappings["Iffalse"] = Iffalse;
			mappings["Ifge"] = Ifge;
			mappings["Ifgt"] = Ifgt;
			mappings["Ifle"] = Ifle;
			mappings["Iflt"] = Iflt;
			mappings["Ifne"] = Ifne;
			mappings["Ifnge"] = Ifnge;
			mappings["Ifngt"] = Ifngt;
			mappings["Ifnle"] = Ifnle;
			mappings["Ifnlt"] = Ifnlt;
			mappings["Ifstricteq"] = Ifstricteq;
			mappings["Ifstrictne"] = Ifstrictne;
			mappings["Iftrue"] = Iftrue;
			mappings["In"] = In;
			mappings["Inclocal"] = Inclocal;
			mappings["InclocalI"] = InclocalI;
			mappings["InclocalP"] = InclocalP;
			mappings["Increment"] = Increment;
			mappings["IncrementI"] = IncrementI;
			mappings["IncrementP"] = IncrementP;
			mappings["Initproperty"] = Initproperty;
			mappings["Instanceof"] = Instanceof;
			mappings["Istype"] = Istype;
			mappings["Istypelate"] = Istypelate;
			mappings["Jump"] = Jump;
			mappings["Kill"] = Kill;
			mappings["Label"] = Label;
			mappings["Lessequals"] = Lessequals;
			mappings["Lessthan"] = Lessthan;
			mappings["Lf32"] = Lf32;
			mappings["Lf64"] = Lf64;
			mappings["Li16"] = Li16;
			mappings["Li32"] = Li32;
			mappings["Li8"] = Li8;
			mappings["Lookupswitch"] = Lookupswitch;
			mappings["Lshift"] = Lshift;
			mappings["Mark"] = Mark;
			mappings["Modulo"] = Modulo;
			mappings["ModuloP"] = ModuloP;
			mappings["Multiply"] = Multiply;
			mappings["MultiplyI"] = MultiplyI;
			mappings["MultiplyP"] = MultiplyP;
			mappings["Negate"] = Negate;
			mappings["NegateI"] = NegateI;
			mappings["NegateP"] = NegateP;
			mappings["Newactivation"] = Newactivation;
			mappings["Newarray"] = Newarray;
			mappings["Newcatch"] = Newcatch;
			mappings["Newclass"] = Newclass;
			mappings["Newfunction"] = Newfunction;
			mappings["Newobject"] = Newobject;
			mappings["Nextname"] = Nextname;
			mappings["Nextvalue"] = Nextvalue;
			mappings["Nop"] = Nop;
			mappings["Not"] = Not;
			mappings["Pop"] = Pop;
			mappings["Popscope"] = Popscope;
			mappings["Prologue"] = Prologue;
			mappings["Pushbyte"] = Pushbyte;
			mappings["Pushdecimal"] = Pushdecimal;
			mappings["Pushdnan"] = Pushdnan;
			mappings["Pushdouble"] = Pushdouble;
			mappings["Pushfalse"] = Pushfalse;
			mappings["Pushint"] = Pushint;
			mappings["Pushnamespace"] = Pushnamespace;
			mappings["Pushnan"] = Pushnan;
			mappings["Pushnull"] = Pushnull;
			mappings["Pushscope"] = Pushscope;
			mappings["Pushshort"] = Pushshort;
			mappings["Pushstring"] = Pushstring;
			mappings["Pushtrue"] = Pushtrue;
			mappings["Pushuint"] = Pushuint;
			mappings["Pushundefined"] = Pushundefined;
			mappings["Pushuninitialized"] = Pushuninitialized;
			mappings["Pushwith"] = Pushwith;
			mappings["Returnvalue"] = Returnvalue;
			mappings["Returnvoid"] = Returnvoid;
			mappings["Rshift"] = Rshift;
			mappings["Sendenter"] = Sendenter;
			mappings["Setglobalslot"] = Setglobalslot;
			mappings["Setlocal"] = Setlocal;
			mappings["Setlocal0"] = Setlocal0;
			mappings["Setlocal1"] = Setlocal1;
			mappings["Setlocal2"] = Setlocal2;
			mappings["Setlocal3"] = Setlocal3;
			mappings["Setproperty"] = Setproperty;
			mappings["Setslot"] = Setslot;
			mappings["Setsuper"] = Setsuper;
			mappings["Sf32"] = Sf32;
			mappings["Sf64"] = Sf64;
			mappings["Si16"] = Si16;
			mappings["Si32"] = Si32;
			mappings["Si8"] = Si8;
			mappings["Strictequals"] = Strictequals;
			mappings["Subtract"] = Subtract;
			mappings["SubtractI"] = SubtractI;
			mappings["SubtractP"] = SubtractP;
			mappings["Swap"] = Swap;
			mappings["Sweep"] = Sweep;
			mappings["Sxi1"] = Sxi1;
			mappings["Sxi16"] = Sxi16;
			mappings["Sxi8"] = Sxi8;
			mappings["Throw"] = Throw;
			mappings["Timestamp"] = Timestamp;
			mappings["Typeof"] = Typeof;
			mappings["UnknownOpecode"] = UnknownOpecode;
			mappings["Urshift"] = Urshift;
			mappings["Verifyop"] = Verifyop;
			mappings["Verifypass"] = Verifypass;
			mappings["Wb"] = Wb;
			mappings["ActionAdd"] = ActionAdd;
			mappings["ActionAdd2"] = ActionAdd2;
			mappings["ActionAnd"] = ActionAnd;
			mappings["ActionAsciiToChar"] = ActionAsciiToChar;
			mappings["ActionBitAnd"] = ActionBitAnd;
			mappings["ActionBitLShift"] = ActionBitLShift;
			mappings["ActionBitOr"] = ActionBitOr;
			mappings["ActionBitRShift"] = ActionBitRShift;
			mappings["ActionBitURShift"] = ActionBitURShift;
			mappings["ActionBitXor"] = ActionBitXor;
			mappings["ActionCall"] = ActionCall;
			mappings["ActionCallFunction"] = ActionCallFunction;
			mappings["ActionCallMethod"] = ActionCallMethod;
			mappings["ActionCastOp"] = ActionCastOp;
			mappings["ActionCharToAscii"] = ActionCharToAscii;
			mappings["ActionCloneSprite"] = ActionCloneSprite;
			mappings["ActionConstantPool"] = ActionConstantPool;
			mappings["ActionDecrement"] = ActionDecrement;
			mappings["ActionDefineFunction"] = ActionDefineFunction;
			mappings["ActionDefineFunction2"] = ActionDefineFunction2;
			mappings["ActionDefineLocal"] = ActionDefineLocal;
			mappings["ActionDefineLocal2"] = ActionDefineLocal2;
			mappings["ActionDelete"] = ActionDelete;
			mappings["ActionDelete2"] = ActionDelete2;
			mappings["ActionDivide"] = ActionDivide;
			mappings["ActionEndDrag"] = ActionEndDrag;
			mappings["ActionEnumerate"] = ActionEnumerate;
			mappings["ActionEnumerate2"] = ActionEnumerate2;
			mappings["ActionEquals"] = ActionEquals;
			mappings["ActionEquals2"] = ActionEquals2;
			mappings["ActionExtends"] = ActionExtends;
			mappings["ActionGetMember"] = ActionGetMember;
			mappings["ActionGetProperty"] = ActionGetProperty;
			mappings["ActionGetTime"] = ActionGetTime;
			mappings["ActionGetURL"] = ActionGetURL;
			mappings["ActionGetURL2"] = ActionGetURL2;
			mappings["ActionGetVariable"] = ActionGetVariable;
			mappings["ActionGotoFrame"] = ActionGotoFrame;
			mappings["ActionGotoFrame2"] = ActionGotoFrame2;
			mappings["ActionGoToLabel"] = ActionGoToLabel;
			mappings["ActionGreater"] = ActionGreater;
			mappings["ActionIf"] = ActionIf;
			mappings["ActionImplementsOp"] = ActionImplementsOp;
			mappings["ActionIncrement"] = ActionIncrement;
			mappings["ActionInitArray"] = ActionInitArray;
			mappings["ActionInitObject"] = ActionInitObject;
			mappings["ActionJump"] = ActionJump;
			mappings["ActionLess"] = ActionLess;
			mappings["ActionLess2"] = ActionLess2;
			mappings["ActionMBAsciiToChar"] = ActionMBAsciiToChar;
			mappings["ActionMBCharToAscii"] = ActionMBCharToAscii;
			mappings["ActionMBStringExtract"] = ActionMBStringExtract;
			mappings["ActionMBStringLength"] = ActionMBStringLength;
			mappings["ActionModulo"] = ActionModulo;
			mappings["ActionMultiply"] = ActionMultiply;
			mappings["ActionNewMethod"] = ActionNewMethod;
			mappings["ActionNewObject"] = ActionNewObject;
			mappings["ActionNextFrame"] = ActionNextFrame;
			mappings["ActionNot"] = ActionNot;
			mappings["ActionOr"] = ActionOr;
			mappings["ActionPlay"] = ActionPlay;
			mappings["ActionPop"] = ActionPop;
			mappings["ActionPreviousFrame"] = ActionPreviousFrame;
			mappings["ActionPush"] = ActionPush;
			mappings["ActionPushDuplicate"] = ActionPushDuplicate;
			mappings["ActionPushValue"] = ActionPushValue;
			mappings["ActionRandomNumber"] = ActionRandomNumber;
			mappings["ActionRemoveSprite"] = ActionRemoveSprite;
			mappings["ActionReturn"] = ActionReturn;
			mappings["ActionSetMember"] = ActionSetMember;
			mappings["ActionSetProperty"] = ActionSetProperty;
			mappings["ActionSetTarget"] = ActionSetTarget;
			mappings["ActionSetTarget2"] = ActionSetTarget2;
			mappings["ActionSetVariable"] = ActionSetVariable;
			mappings["ActionStackSwap"] = ActionStackSwap;
			mappings["ActionStartDrag"] = ActionStartDrag;
			mappings["ActionStop"] = ActionStop;
			mappings["ActionStopSounds"] = ActionStopSounds;
			mappings["ActionStoreRegister"] = ActionStoreRegister;
			mappings["ActionStrictEquals"] = ActionStrictEquals;
			mappings["ActionStringAdd"] = ActionStringAdd;
			mappings["ActionStringEquals"] = ActionStringEquals;
			mappings["ActionStringExtract"] = ActionStringExtract;
			mappings["ActionStringGreater"] = ActionStringGreater;
			mappings["ActionStringLength"] = ActionStringLength;
			mappings["ActionStringLess"] = ActionStringLess;
			mappings["ActionSubtract"] = ActionSubtract;
			mappings["ActionTargetPath"] = ActionTargetPath;
			mappings["ActionThrow"] = ActionThrow;
			mappings["ActionToggleQuality"] = ActionToggleQuality;
			mappings["ActionToInteger"] = ActionToInteger;
			mappings["ActionToNumber"] = ActionToNumber;
			mappings["ActionToString"] = ActionToString;
			mappings["ActionTrace"] = ActionTrace;
			mappings["ActionTry"] = ActionTry;
			mappings["ActionTypeOf"] = ActionTypeOf;
			mappings["ActionUnknown"] = ActionUnknown;
			mappings["ActionWaitForFrame"] = ActionWaitForFrame;
			mappings["ActionWaitForFrame2"] = ActionWaitForFrame2;
			mappings["ActionWith"] = ActionWith;
			mappings["ABCData"] = ABCData;
			mappings["ActionRecords"] = ActionRecords;
			mappings["AlphaBitmapData"] = AlphaBitmapData;
			mappings["AlphaColorMapData"] = AlphaColorMapData;
			mappings["Asset"] = Asset;
			mappings["BevelFilter"] = BevelFilter;
			mappings["BitmapData15"] = BitmapData15;
			mappings["BitmapData24"] = BitmapData24;
			mappings["BlurFilter"] = BlurFilter;
			mappings["ButtonCondAction"] = ButtonCondAction;
			mappings["ButtonRecord"] = ButtonRecord;
			mappings["ClipActionRecord"] = ClipActionRecord;
			mappings["ClipActions"] = ClipActions;
			mappings["ClipEventFlags"] = ClipEventFlags;
			mappings["ColorMapData"] = ColorMapData;
			mappings["ColorMatrixFilter"] = ColorMatrixFilter;
			mappings["ConvolutionFilter"] = ConvolutionFilter;
			mappings["CurvedEdgeRecord"] = CurvedEdgeRecord;
			mappings["CXForm"] = CXForm;
			mappings["CXFormWithAlpha"] = CXFormWithAlpha;
			mappings["DropShadowFilter"] = DropShadowFilter;
			mappings["EndShapeRecord"] = EndShapeRecord;
			mappings["FillStyle"] = FillStyle;
			mappings["FocalGradient"] = FocalGradient;
			mappings["FrameLabelData"] = FrameLabelData;
			mappings["GlowFilter"] = GlowFilter;
			mappings["GlyphEntry"] = GlyphEntry;
			mappings["Gradient"] = Gradient;
			mappings["GradientBevelFilter"] = GradientBevelFilter;
			mappings["GradientGlowFilter"] = GradientGlowFilter;
			mappings["GradientRecord"] = GradientRecord;
			mappings["Header"] = Header;
			mappings["KerningRecord"] = KerningRecord;
			mappings["LanguageCode"] = LanguageCode;
			mappings["LineStyle"] = LineStyle;
			mappings["LineStyle2"] = LineStyle2;
			mappings["Matrix"] = Matrix;
			mappings["MorphFillStyle"] = MorphFillStyle;
			mappings["MorphGradientRecord"] = MorphGradientRecord;
			mappings["MorphLineStyle"] = MorphLineStyle;
			mappings["MorphLineStyle2"] = MorphLineStyle2;
			mappings["Rect"] = Rect;
			mappings["RegisterParam"] = RegisterParam;
			mappings["RGB"] = RGB;
			mappings["RGBA"] = RGBA;
			mappings["SceneData"] = SceneData;
			mappings["Shape"] = Shape;
			mappings["ShapeRecordBase"] = ShapeRecordBase;
			mappings["ShapeWithStyle"] = ShapeWithStyle;
			mappings["SoundEnvelope"] = SoundEnvelope;
			mappings["SoundInfo"] = SoundInfo;
			mappings["StraightEdgeRecord"] = StraightEdgeRecord;
			mappings["StyleChangeRecord"] = StyleChangeRecord;
			mappings["Symbol"] = Symbol;
			mappings["TextRecord"] = TextRecord;
			mappings["ZoneData"] = ZoneData;
			mappings["ZoneRecord"] = ZoneRecord;
			mappings["CSMTextSettings"] = CSMTextSettings;
			mappings["DebugID"] = DebugID;
			mappings["DefineBinaryData"] = DefineBinaryData;
			mappings["DefineBits"] = DefineBits;
			mappings["DefineBitsJPEG2"] = DefineBitsJPEG2;
			mappings["DefineBitsJPEG3"] = DefineBitsJPEG3;
			mappings["DefineBitsJPEG4"] = DefineBitsJPEG4;
			mappings["DefineBitsLossless"] = DefineBitsLossless;
			mappings["DefineBitsLossless2"] = DefineBitsLossless2;
			mappings["DefineButton"] = DefineButton;
			mappings["DefineButton2"] = DefineButton2;
			mappings["DefineButtonCxform"] = DefineButtonCxform;
			mappings["DefineButtonSound"] = DefineButtonSound;
			mappings["DefineEditText"] = DefineEditText;
			mappings["DefineFont"] = DefineFont;
			mappings["DefineFont2"] = DefineFont2;
			mappings["DefineFont3"] = DefineFont3;
			mappings["DefineFont4"] = DefineFont4;
			mappings["DefineFontAlignZones"] = DefineFontAlignZones;
			mappings["DefineFontInfo"] = DefineFontInfo;
			mappings["DefineFontInfo2"] = DefineFontInfo2;
			mappings["DefineFontName"] = DefineFontName;
			mappings["DefineMorphShape"] = DefineMorphShape;
			mappings["DefineMorphShape2"] = DefineMorphShape2;
			mappings["DefineScalingGrid"] = DefineScalingGrid;
			mappings["DefineSceneAndFrameLabelData"] = DefineSceneAndFrameLabelData;
			mappings["DefineShape"] = DefineShape;
			mappings["DefineShape2"] = DefineShape2;
			mappings["DefineShape3"] = DefineShape3;
			mappings["DefineShape4"] = DefineShape4;
			mappings["DefineSound"] = DefineSound;
			mappings["DefineSprite"] = DefineSprite;
			mappings["DefineText"] = DefineText;
			mappings["DefineText2"] = DefineText2;
			mappings["DefineVideoStream"] = DefineVideoStream;
			mappings["DoABC"] = DoABC;
			mappings["DoABC2"] = DoABC2;
			mappings["DoAction"] = DoAction;
			mappings["DoInitAction"] = DoInitAction;
			mappings["EnableDebugger"] = EnableDebugger;
			mappings["EnableDebugger2"] = EnableDebugger2;
			mappings["End"] = End;
			mappings["ExportAssets"] = ExportAssets;
			mappings["FileAttributes"] = FileAttributes;
			mappings["FrameLabel"] = FrameLabel;
			mappings["ImportAssets"] = ImportAssets;
			mappings["ImportAssets2"] = ImportAssets2;
			mappings["JPEGTables"] = JPEGTables;
			mappings["Metadata"] = Metadata;
			mappings["PlaceObject"] = PlaceObject;
			mappings["PlaceObject2"] = PlaceObject2;
			mappings["PlaceObject3"] = PlaceObject3;
			mappings["ProductInfo"] = ProductInfo;
			mappings["Protect"] = Protect;
			mappings["RemoveObject"] = RemoveObject;
			mappings["RemoveObject2"] = RemoveObject2;
			mappings["ScriptLimits"] = ScriptLimits;
			mappings["SetBackgroundColor"] = SetBackgroundColor;
			mappings["SetTabIndex"] = SetTabIndex;
			mappings["ShowFrame"] = ShowFrame;
			mappings["SoundStreamBlock"] = SoundStreamBlock;
			mappings["SoundStreamHead"] = SoundStreamHead;
			mappings["SoundStreamHead2"] = SoundStreamHead2;
			mappings["StartSound"] = StartSound;
			mappings["StartSound2"] = StartSound2;
			mappings["SymbolClass"] = SymbolClass;
			mappings["UnknownTag"] = UnknownTag;
			mappings["VideoFrame"] = VideoFrame;

			initpropertiesMappings();
		}
	}
}
